import request from '@/config/axios'

/** 通用表单-详情信息 */
export interface FormDetails {
    id: number; // 字段id
    type?: string; // 类型
    field?: string; // 字段名
    name?: string; // 字段列名
    columnDesc: string; // 字段描述
    isRequired: string; // 是否必填
    htmlType?: string; // 显示类型
    dictType: string; // 字典类型
    score: string; // 分值
    sort?: number; // 排序
    dataType: string; // 数据类型
    remark: string; // 备注
}

/** 通用表单-主表信息 */
export interface FormInfo {
    id: number; // ID
    module?: string; // 模块
    type?: string; // 类型
    remark: string; // 备注
    formdetailss?: FormDetails[]
}

// 通用表单-主表 API
export const FormInfoApi = {
    // 查询通用表单-主表分页
    getFormInfoPage: async (params: any) => {
        return await request.get({url: `/general/form-info/page`, params})
    },

    // 查询通用表单-主表详情
    getFormInfo: async (id: number) => {
        return await request.get({url: `/general/form-info/get?id=` + id})
    },

    // 新增通用表单-主表
    createFormInfo: async (data: FormInfo) => {
        return await request.post({url: `/general/form-info/create`, data})
    },

    // 修改通用表单-主表
    updateFormInfo: async (data: FormInfo) => {
        return await request.put({url: `/general/form-info/update`, data})
    },

    // 删除通用表单-主表
    deleteFormInfo: async (id: number) => {
        return await request.delete({url: `/general/form-info/delete?id=` + id})
    },

    /** 批量删除通用表单-主表 */
    deleteFormInfoList: async (ids: number[]) => {
        return await request.delete({url: `/general/form-info/delete-list?ids=${ids.join(',')}`})
    },

    // 导出通用表单-主表 Excel
    exportFormInfo: async (params) => {
        return await request.download({url: `/general/form-info/export-excel`, params})
    },

// ==================== 子表（通用表单-详情） ====================

    // 获得通用表单-详情列表
    getFormDetailsListByType: async (type) => {
        return await request.get({url: `/general/form-info/form-details/list-by-type?type=` + type})
    }
}
